TCP三次握手的安全性问题:SYN洪泛攻击

SYN洪泛攻击

TCP三次握手的过程中,服务器为了响应一个收到的SYN,分配并初始化 连接变量缓存。然后服务器发送一个 SYN ACK 进行响应,并等待来自客户端的ACK报文段。如果某客户端不发送 ACK 来完成该三次握手的第三步,最终(通常在一分多钟以后)服务器将终止该半开连接并回收资源。
这种TCP连接管理为经典的 DOS攻击SYN洪泛攻击 提供了环境。在这种攻击中,攻击者发送大量的TCP SYN 请求连接 报文段, 而不完成第三次握手 ( 不发送 确认连接 报文段 )。 如果服务器不断地响应请求, 为这些半开连接分配资源 ( 但从未使用 ), 导致服务器地连接资源被消耗殆尽。这种SYN洪泛攻击是众多DOS攻击中的其中一种。

解决方法

  • 当服务器接收到一个 SYN 报文段时,它不知道时一个正常连接还是一次攻击,因此,服务器不会为该报文段生成一个半开连接。相反,服务器生成一个初始TCP序列号,该序列号是SYN报文段的源和目的IP地址与端口号以及仅有该服务器知道的秘密数的一个复杂函数 (散列函数)。 这个初始序列号也就是一个cookie。服务器发送具有这种特殊序列号的SYN ACK ( **允许连接 ** )报文段。重要的是,服务器并不记忆该cookie或任何对应于SYN的其它状态信息
  • 如果客户是合法的,它将返回一个ACK ( 确认连接 )报文段。该报文段的 ack 值为 cookie值加1。根据这个值计算该ACK报文段是否合法,如果 判定合法,服务器才会生成一个具有套接字的全开的连接
  • 在另一方面,如果客户没有返回一个ACK报文段,则初始的SYN并没有对服务器产生危害,因为服务器没有为它分配任何资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值